package es.uned.etsii.si3.taller;

import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable;
import java.sql.SQLException;

@DatabaseTable(tableName = "poblaciones")
public
class Poblacion extends Persistente {
	public static final String NOMBRE_FIELD_NAME = "nombre";
	public static final String ID_PROVINCIA_FIELD_NAME = "id_provincia";

	@DatabaseField(generatedId = true)
	int id;
	@DatabaseField(width = 40, index = true, columnName = NOMBRE_FIELD_NAME)
	String nombre;
	@DatabaseField(foreign = true, foreignAutoRefresh = true, columnName = ID_PROVINCIA_FIELD_NAME)
	Provincia provincia;

	/**
	 * Crea un objeto de tipo población a partir de los parámetros
	 * @param nombre
	 * @param provincia
	 * @return el objeto poblacion
	 * @throws SQLException
	 */
	public
	static Poblacion crear(String nombre, Provincia provincia) throws SQLException {
		Poblacion poblacion = new Poblacion();

		poblacion.setNombre(nombre);
		poblacion.setProvincia(provincia);
		getClassDao(Poblacion.class).create(poblacion);

		return poblacion;
	}

	public
	Poblacion() {
		// ORM Lite necesita un constructor por defecto
	}

	/**
	 * getters y setters
	 */
	public int       getId()        { return id; }
	public String    getNombre()    { return nombre; }
	public Provincia getProvincia() { return provincia; }

	public
	void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public
	void setProvincia(Provincia provincia) {
		this.provincia = provincia;
	}
}